<?php
/**
 * User: zwh
 * Time: 2016-10-24 15:56:56
 */

class MirrorOrderProductBaseItem extends Eloquent
{
    protected $table = "mirror_order_product_base_item";
    
    /**
     * @Author:      zwh
     * @DateTime:    2016-10-25 15:42:01
     * @Description: 用于修改基础产品的产品数量
     */
    public static function changeProductItemNum($order_id,$opbi_old,$number,$amount){
        return DB::transaction(function () use ($order_id,$opbi_old,$number,$amount) {
            $opbi=MirrorOrderProductBaseItem::find($opbi_old->id);
            $opbi->num=$number;
            $opbi->amount=$amount;
            $opbi->save();
            
            //订单应付金额及优惠信息将重新计算，废弃原有再优惠信息上加减
            MirrorOrders::calculate($order_id);
            return array('code' => 0, 'msg' => 'ok', 'result' => array("order_id"=>$order_id));
        });
    }
    /**
     * @Author:      lyt
     * @DateTime:    2016-01-28 10:43:44
     * @Description: 用于修改基础产品的产品型号
     *  逻辑规则如下
     * 没有出库记录的  修改随意
     * 备货中 不能修改  或者出库退库 后在操作 0
     * 等待领料的  不能修改  需要领料全部退库 后在操作 1
     * 已经领料的  修改的数量  需要退库 在操作 2
     * 都是已经退货的 可以修改 3
     * 都是已经删除的 可以修改 4
     */
    public static function changeProductItem($order_id,$opbi,$si,$wmcf,$new_item_type){
        return DB::transaction(function () use ($order_id,$opbi,$si,$wmcf,$new_item_type) {
            $order=MirrorOrders::find($order_id);
            $item_info=SupplyItem::getCacheItemInfo($si->id);
            //判断出库条件
            // if($new_item_type==0){
                // $ss=SupplySeries::find($si->series_id);
                $opbi->item_name=$item_info->name;
                $opbi->amount=$si->amount;
                $opbi->item_id=$si->id;
                $opbi->unit=$item_info->unit?$item_info->unit:'';
            // }else{
            //     $opbi->item_name=$si->series_name." ".$si->model;
            //     $opbi->amount=$si->amount;
            //     $opbi->item_id=$si->id;
            //     $opbi->unit=$si->unit;
            // }
            $opbi->item_type=$new_item_type;
            $opbi->discount=1;
            $opbi->is_adapter=1;
            $opbi->save();
    
            //订单应付金额及优惠信息将重新计算，废弃原有再优惠信息上加减
            MirrorOrders::calculate($order_id);
            return array('code' => 0, 'msg' => 'ok', 'result' => array("order_id"=>$order_id));
        });
    }
}
